1. Field of the Invention
This invention is related in general to the field of data management systems. In particular, the invention consists of a method for assigning virtual element addresses in a manner that maximizes the availability of shared element addresses.
2. Description of the Prior Art
Automated data storage libraries are used for providing cost effective storage and retrieval of large quantities of data. In an automated data storage library, data is stored on data storage media that are, in turn, stored on storage shelves or the like inside the library in a fashion that renders the media, and its resident data, accessible for physical retrieval. Such media is commonly termed “removable media.” Data storage media may comprise any type of media on which data may be stored and which may serve as removable media, including but not limited to magnetic media (such as magnetic tape or disks), optical media (such as optical tape or disks), electronic media (such as PROM, EEPROM, flash PROM, Compactflash™, Smartmedia™ Memory Stick™, etc.), or other suitable media.
Typically, the data stored in automated data storage libraries is resident on data storage media that is contained within a cartridge and referred to as a data storage media cartridge. An example of a data storage media cartridge that is widely employed in automated data storage libraries for mass data storage is a magnetic tape cartridge.
In addition to data storage media, automated data storage libraries typically contain data storage drives that store data to, and/or retrieve data from, the data storage media. The transport of data storage media between data storage shelves and data storage drives is typically accomplished by one or more robot accessors (hereinafter termed “accessors”). Such accessors have grippers for physically retrieving the selected data storage media from the storage shelves within the automated data storage library and transporting such media to the data storage drives by moving in the X and Y directions.
Libraries typically use internal addressing to identify cartridge slot locations within the library. The internal addressing of the library is referred to as a library address or a physical address. Libraries typically present cartridge slot locations to host applications by way of an address, commonly referred to as an element address. The hosts' view of a library reported address is referred to as a host address or a logical address. In some designs, the library address and the host address for any particular cartridge location may be the same. For example, all physical storage shelves in the library may be assigned a physical address beginning with a starting address and incrementing by one for each sequential slot in the library. This address information is presented by the library to host applications that send commands to the library to move cartridges based on this physical address information.
However, in some designs, the library address and the host address for a particular cartridge location is different. For example, the library may be partitioned into several logical libraries. Each logical library may be assigned to different host computers such that the host associated with one logical library has no awareness of any other logical libraries and associated cartridges. In this example, cartridges associated with one logical library may have the same logical address as seen by its host application as cartridges associated with another logical library as seen by its host application even though the library maintains unique physical addresses for each cartridge.
Virtualization of the storage slots in a library is another example of why the library address and the host address may not be the same. The library maintains a map of host (logical) storage addresses to actual library (physical) addresses when performing move operations and when reporting cartridge locations to a host application. The mapping of the logical address to the actual physical address must be maintained in a consistent fashion by the library so as to ensure proper movement of the intended cartridge. Using virtualization, the library may arbitrarily choose any slot to store media, i.e., the storage slots associated with a range of addresses used by a particular host need to be proximate and/or sequential. Mapping of addresses includes mapping of storage slots with or without media.
A host application manages data in a library using “location-centric” commands, and may utilize a medium changer protocol, such as small-computer systems interface (SCSI). The host application manages cartridge movement by specifying source and destination locations in the system. These source and destination locations are the element addresses reported by the library as host element addresses.
A host element address may include a host import/export element address (IEEA) which appears to the host as the address of an input/output slot. Additionally, the host element address includes a host storage element address which appears to the host as a storage slot location. Location-centric commands issued by a host application which include these host element addresses are mapped by the library to physical element addresses of actual media storage slots or to actual media input/output slots.
Host computers maintain a host catalog of these host element addresses, cross-referencing host element addresses with library data storage media cartridges. Each data storage media cartridge may be identified by a volume serial number (VOLSER). Mapping the host element addresses to physical element addresses is managed by the library.
In an exemplary automated data storage library, a data storage media cartridge placed into a library's input/output station by either an automated device or an operator is issued an element address based on the physical location of the input/output station or the storage slot into which the cartridge is subsequently placed. In a library wherein the input/output stations and/or storage cells are segregated into cells, a 5-slot cell station may include a first slot having an element address and each subsequent slot's address would be an incremental increase of the starting slot's address. In this manner, a cartridge placed in the second slot would be given a physical element address one greater than that of the starting element address.
However, the element addresses of import/export elements (IEEs) may be virtualized, resulting in the use of virtual import/export element addresses (VIEEAs). In this manner, multiple hosts may share a single physical library and may utilize differing ranges of VIEE addresses for cartridges within its logical library. For example, a first host may be configured to access 10 import/export element addresses (IEEAs) while a second host may be configured to access 20 IEEAs. However, the physical element address for each cartridge may be reported to each host as a different VIEEA. Utilizing virutalization of the IEEAs, the cartridge placed in the second slot of the 5-cell station may posses a physical element address of 101 but be reported to the first host as VIEEA 106. By mapping the physical element address of each cartridge to a VIEEA, the host may continue to represent a particular data storage media as a single host element address, even if the data storage cartridge is moved to another physical element address, such as, for example, storage cell 209.
With the advent of VIEEAs, assignment of element addresses becomes an algorithmic based function of the library firmware rather than a simple mapping of each physical location to a specific element address. When a cartridge is placed into an I/O slot, the volser of the cartridge is first checked to see if it is within a cartridge assignment policy (CAP) for a particular host. A CAP is a range of cartridge volsers defined by the user to be owned by a selected logical library when the cartridges are detected as entering the library. If the cartridge is in a library's CAP it will be assigned a VIEEA corresponding only to that host and will not become visible to other hosts. A common VIEEA is a virtual import/export element address within the library's range of import/export addresses that is available to all hosts attached to the library, i.e., it has not yet been assigned to a single host and become a non-common VIEEA. A non-common VIEEA is a virtual import/export element address within the library's range of import/export addresses that has been assigned to a single host and therefore cannot be a candidate for a common VIEEA available to all hosts. If the cartridge's volser is not within any hosts' CAP, it will be assigned a common VIEEA that may be visible to multiple hosts.
However, when a cartridge is scanned at the I/O station, a VIEEA may not be issued if (a) the cartridge's volser belongs to a host's CAP and the host has no available IEEAs, or (b) the cartridge's volser is not a member of any CAP but no common VIEEA is available. In this circumstance, the cartridge is moved into a temporary physical storage slot and waits for a VIEEA to become available. This problem becomes more common if the VIEEAs are not maintained properly. For example, if a cartridge with a volser belonging to a host's CAP is assigned a common VIEEA, then that common VIEEA will not be available for subsequently loaded cartridges that do not belong to any CAP. Queuing or queued cartridge is the temporary state of a data cartridge while it is waiting for assignment of a common or non-common VIEEA because no VIEEAs are currently available. Accordingly, it is desirable to have a method for assigning VIEEAs to cartridges belonging to a host's CAP that maximizes the utilization of common VIEEAs and reduces the temporary queuing of non-addressed data storage media.